1. Technical Field
This invention pertains to the field of digital data processing, particularly to the field of techniques for maximizing data processing throughput per unit cost across a set of software programs dynamically sharing a data processing system comprising multiple processing cores.
2. Descriptions of the Related Art
Computing systems will increasingly be based on large arrays of processing cores, particularly in higher capacity server type computers. The multi-core computing hardware will often be shared by a number of software applications, some of which may belong to different users, while also individual software applications will increasingly be executing on multiple processing cores in parallel. As a result, the set of application program processing tasks running on the set of cores of a given multi-core based computer will need to be updated, potentially highly frequently, in order to pursue sufficiently high application program level as well as system wide processing throughput. To cost-efficiently enable such dynamic application task switching on a parallel computing platform, novel multi-user parallel computing architectures are needed to support efficiently transferring the processing context of any given task to any core of the system as well as to facilitate efficient communication among the tasks of any given application program running on the multi-core data processing system. Moreover, innovations are needed regarding effective pricing and billing of user contracts, to increase the parallel computing cost-efficiency both for the users and provider of the computing service. Particular challenges to be solved include providing effective compute capacity service unit pricing model and billing techniques with appropriate incentives and tools to optimally spread users' data processing loads in time and space across the available parallel data processing resources, in order to pursue maximization of data processing throughput per unit cost for the users as well as maximization of profits for the service provider.